package com.yunke.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.yunke.common.base.YunkeBaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

/**
 * 充值订单实体类
 * 
 * @author yunke
 * @since 1.0.0
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dzrecharge_order")
@Schema(description = "充值订单")
public class YunkeRechargeOrder extends YunkeBaseEntity {

    /**
     * 充值订单ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    @Schema(description = "充值订单ID")
    private Long id;

    /**
     * 用户ID
     */
    @Schema(description = "用户ID")
    private Long userId;

    /**
     * 订单号
     */
    @Schema(description = "订单号")
    private String orderNo;

    /**
     * 充值金额
     */
    @Schema(description = "充值金额")
    private BigDecimal amount;

    /**
     * 实付金额
     */
    @Schema(description = "实付金额")
    private BigDecimal payAmount;

    /**
     * 支付方式：1-微信支付 2-支付宝 3-余额支付
     */
    @Schema(description = "支付方式：1-微信支付 2-支付宝 3-余额支付")
    private Integer payType;

    /**
     * 支付状态：0-待支付 1-已支付 2-支付失败 3-已取消
     */
    @Schema(description = "支付状态：0-待支付 1-已支付 2-支付失败 3-已取消")
    private Integer payStatus;

    /**
     * 第三方订单号
     */
    @Schema(description = "第三方订单号")
    private String thirdOrderNo;

    /**
     * 第三方交易号
     */
    @Schema(description = "第三方交易号")
    private String thirdTradeNo;

    /**
     * 支付时间
     */
    @Schema(description = "支付时间")
    private Long payTime;

    /**
     * 过期时间
     */
    @Schema(description = "过期时间")
    private Long expireTime;

    /**
     * 客户端IP
     */
    @Schema(description = "客户端IP")
    private String clientIp;

    /**
     * 回调通知结果
     */
    @Schema(description = "回调通知结果")
    private String notifyResult;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;
} 